package com.tangjiali.treeSet;

import java.util.Comparator;
import java.util.Random;
import java.util.TreeSet;

public class Solution {
    public static void main(String[] args) {
        //1.随机生成10个不同的0~50之间的整数，要求按照从小到大进行遍历。
        TreeSet<Integer> asc = getOrder(10, Mode.ASC, 0, 50);
        System.out.println("asc集合的长度为："+asc.size());
        System.out.println(asc);
        //2.随机生成10个不同的50~100之间的整数，要求按照从大到小进行遍历。
        TreeSet<Integer> desc = getOrder(10, Mode.DESC, 50, 100);
        System.out.println("desc集合的长度为："+desc.size());
        System.out.println(desc);
    }


    /**
     *
     * @param number    取个数
     * @param mode      排序方式：asc\dec
     * @param min       最小随机数
     * @param max       最大随机数
     * @return
     */
    static TreeSet<Integer> getOrder(int number,Mode mode,int min,int max){
        Random random = new Random();
        switch (mode){
            case ASC:
                TreeSet<Integer> treeSet = new TreeSet<>(); //升序
                for (; treeSet.size()<number;) {
                    Integer i = random.nextInt(max-min+1) +min;
                    treeSet.add(i);
                }
                return treeSet;
            case DESC:
                TreeSet<Integer> treeSetDesc = new TreeSet<>(( o1, o2) -> o2 - o1); //升序
                while (treeSetDesc.size()<number){
                    Integer i = random.nextInt(max-min+1) +min;
                    treeSetDesc.add(i);
                }
                return  treeSetDesc;
            default:
                System.out.println("入参异常.请检查");
                return new TreeSet<Integer>();
        }
    }
}

